Packet networks such as the Internet provide an effective vehicle for worldwide data and audio communication at a cost much lower than Public Switched Telephone Networks (PSTNs). As such, there is an increasing demand for expanding the capabilities of communication via the Internet. There are, though, several limitations to existing technology that inhibit this goal.
In an effort to increase the rate of data transmission in bandwidth limited bi-directional communication systems, concatenation is used to reduce the number of requests for bandwidth to a Cable Modem Termination System (CMTS).
Concatenation is a method described in the Docsis 1.0/1.1 RFI specification, which allows more efficient transmission of data packets in the upstream direction (i.e., from a modem to a CMTS or headend) by combining a number of single data packets into one concatenated data packet. In one example using concatenation, a DOCSIS cable modem makes only one bandwidth request for multiple data packets (in the form of one concatenated data packet), as opposed to making a different bandwidth request for each data packet. Although Docsis 1.0/1.1 RFI specification describes the protocol to implement concatenation, it does not state how and when it should occur, or how best to optimize the use of concatenation. One shortcoming is that concatenation is typically implemented by waiting until a requisite number of data packets to be transmitted upstream to the CMTS are queued at the cable modem (CM), and it is generally not known when the next data packet for upstream transmission will arrive at the CM queue. This can result in unknown transmission delays.
A second method called “piggybacking” is also described in the Docsis 1.0/1.1 RFI specification, which allows more efficient use of upstream bandwidth. In order to implement piggybacking, a requisite number of data packets must be queued at the packet descriptor queue of the CM IC. Given this condition, the CM IC will automatically cause a 1st data packet to generate a piggyback request for a 2nd data packet. Similarly, if a 3rd data packet is present when the 2nd data packet is ready to be sent, a piggyback request for the 3rd data packet will be generated by the CM when the 2nd data packet is sent. This piggyback operation continues as long as there are data packets waiting to be sent with their ownership bits set in the data packet descriptor queue. Current piggyback methods though, can only transmit the available data packets one at a time.